package per.wsj.workmanager;

import android.app.job.JobParameters;
import android.app.job.JobService;

import per.wsj.commonlib.utils.LogUtil;


public class MyJobService extends JobService {

    /**
     * @param params
     * @return
     * false：框架认为你作业已经执行完毕了，那么下一个作业就立刻展开了
     * true：框架将作业结束状态交给你去处理。因为我们可能会异步的通过线程等方式去执行工作，
     * 这个时间肯定不能放在主线程里面去控制，这时候需要手动调用jobFinished(JobParameters params, boolean needsReschedule)
     * 方法去告诉框架作业结束了，其中needsReschedule表示是否重复执行
     */
    @Override
    public boolean onStartJob(JobParameters params) {
        LogUtil.LOGD("---onStartJob---");
        LogUtil.LOGD("---Param:" + params.getExtras().getLong("WORK_DURATION_KEY"));

        jobFinished(params,false);
        return true;
    }

    /**
     * onStartJob return true; 并且没有调用jobFinished()时cancel才会走该方法
     * @param params
     * @return
     */
    @Override
    public boolean onStopJob(JobParameters params) {
        LogUtil.LOGD("---onStopJob---");
        LogUtil.LOGD("---Param:" + params.getExtras().getLong("WORK_DURATION_KEY"));
        return false;
    }
}
